package com.ethink.order.api;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ethink.order.api.info.TocSaleAfterImportLogInfo;
import com.ethink.order.api.request.TocSaleAfterImportLogAddRequest;
import com.ethink.order.api.request.TocSaleAfterImportLogQueryRequest;
import com.ethink.order.api.request.TocSaleAfterImportLogUpdateRequest;
import com.ethink.order.api.request.UpdateStatusBaseRequest;
import com.ethink.order.api.response.*;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * TOC售后导入日志 Facade接口
 *
 * @author default
 * @date 2023-01-10
 */
@FeignClient(name = "ethink-order-service", path = "order-service/facade/v1/tocSaleAfterImportLog", contextId = "tocSaleAfterImportLogFacade")
public interface TocSaleAfterImportLogFacade {

    @PostMapping("/queryTocSaleAfterImportLog")
    @ResponseBody
    Page<TocSaleAfterImportLogInfo> queryTocSaleAfterImportLog(@RequestBody TocSaleAfterImportLogQueryRequest request);

    @PostMapping("/getTocSaleAfterImportLogById")
    @ResponseBody
    TocSaleAfterImportLogGetResponse getTocSaleAfterImportLogById(@RequestParam("tocSaleAfterImportLogId") Long id);

    @PostMapping("/listTocSaleAfterImportLog")
    @ResponseBody
    List<TocSaleAfterImportLogInfo> listTocSaleAfterImportLog(@RequestBody TocSaleAfterImportLogQueryRequest request);

    @PostMapping("/addTocSaleAfterImportLog")
    @ResponseBody
    TocSaleAfterImportLogAddResponse addTocSaleAfterImportLog(@RequestBody TocSaleAfterImportLogAddRequest request);

    @PostMapping("/updateTocSaleAfterImportLog")
    @ResponseBody
    TocSaleAfterImportLogUpdateResponse updateTocSaleAfterImportLog(@RequestBody TocSaleAfterImportLogUpdateRequest request);

    @PostMapping("/deleteTocSaleAfterImportLog")
    @ResponseBody
    TocSaleAfterImportLogDeleteResponse deleteTocSaleAfterImportLog(@RequestParam("tocSaleAfterImportLogId") Long tocSaleAfterImportLogId);

    @PostMapping("/updateStatus")
    @ResponseBody
    void updateStatus(@RequestBody UpdateStatusBaseRequest updateStatusBaseRequest);

    @GetMapping("/settleOrder")
    @ResponseBody
    List<TocSaleAfterImportResponse> settleOrder(@RequestParam("id") Long id);
}